home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / librw / RWTValHashSet.z / RWTValHashSet
Encoding:
Text File  |  1998-10-30  |  9.5 KB  |  265 lines

  1.  
  2.  
  3.  
  4. RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++))))                                        RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++))))
  5.  
  6.  
  7.  
  8. NNNNaaaammmmeeee
  9.      RWTValHashSet<T> - Rogue Wave library class
  10.  
  11. SSSSyyyynnnnooooppppssssiiiissss
  12.               #include <rw/tvhset.h>
  13.  
  14.  
  15.  
  16.               unsigned hashFun(const T&);
  17.           RWTValHashSet(hashFun) set;
  18.  
  19. PPPPlllleeeeaaaasssseeee NNNNooootttteeee!!!!
  20.      IIIIffff yyyyoooouuuu ddddoooo nnnnooootttt hhhhaaaavvvveeee tttthhhheeee SSSSttttaaaannnnddddaaaarrrrdddd CCCC++++++++ LLLLiiiibbbbrrrraaaarrrryyyy,,,, uuuusssseeee tttthhhheeee iiiinnnntttteeeerrrrffffaaaacccceeee ddddeeeessssccccrrrriiiibbbbeeeedddd
  21.      hhhheeeerrrreeee....  OOOOtttthhhheeeerrrrwwwwiiiisssseeee,,,, uuuusssseeee tttthhhheeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt described in the
  22.      Class Reference.
  23.  
  24.  
  25. DDDDeeeessssccccrrrriiiippppttttiiiioooonnnn
  26.      RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt<<<<TTTT>>>> is a derived class of RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>> where the
  27.      iiiinnnnsssseeeerrrrtttt(((()))) function has been overridden to accept only one item of a given
  28.      value.  Hence, each item in the collection will be unique.  As with class
  29.      RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>, you must supply a hashing function to the
  30.      constructor. The class TTTT must have:
  31.           well-defined copy semantics (TTTT::::::::TTTT((((ccccoooonnnnsssstttt TTTT&&&&)))) or equivalent);
  32.  
  33.           well-defined assignment semantics (TTTT::::::::ooooppppeeeerrrraaaattttoooorrrr====((((ccccoooonnnnsssstttt TTTT&&&&)))) or
  34.           equivalent);
  35.  
  36.           well-defined equality semantics (TTTT::::::::ooooppppeeeerrrraaaattttoooorrrr========((((ccccoooonnnnsssstttt TTTT&&&&))))).
  37.  
  38.  
  39. PPPPeeeerrrrssssiiiisssstttteeeennnncccceeee
  40.      None
  41.  
  42. EEEExxxxaaaammmmpppplllleeee
  43.      This examples exercises a set of RRRRWWWWCCCCSSSSttttrrrriiiinnnnggggs.
  44.  
  45.               #include <rw/tvhset.h>
  46.           #include <rw/cstring.h>
  47.           #include <rw/rstream.h>
  48.           main(){
  49.             RWTValHashSet<RWCString> set(RWCString::hash);
  50.             set.insert("one");
  51.             set.insert("two");
  52.             set.insert("three");
  53.             set.insert("one");  // Rejected: already in collection
  54.             cout << set.entries() << endl;  // Prints "3"
  55.             return 0;
  56.           }
  57.  
  58.  
  59.      Program output:
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++))))                                        RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++))))
  71.  
  72.  
  73.  
  74.               3
  75.  
  76.  
  77.  
  78.  
  79. PPPPuuuubbbblllliiiicccc MMMMeeeemmmmbbbbeeeerrrr FFFFuuuunnnnccccttttiiiioooonnnnssss
  80.               RWTValHashSet<T>&
  81.           UUUUnnnniiiioooonnnn((((const RWTValHashSet<T>& h);
  82.  
  83.  
  84.      Computes the union of self and hhhh, modifying self and returning self.
  85.  
  86.               RWTValHashSet<T>&
  87.           ddddiiiiffffffffeeeerrrreeeennnncccceeee((((const RWTValHashSet<T>& h);
  88.  
  89.  
  90.      Computes the disjunction of self and hhhh, modifying self and returning
  91.      self.
  92.  
  93.               RWTValHashSet<T>&
  94.           iiiinnnntttteeeerrrrsssseeeeccccttttiiiioooonnnn((((const RWTValHashSet<T>& h);
  95.  
  96.  
  97.      Computes the intersection of self and hhhh, modifying self and returning
  98.      self.
  99.  
  100.               RWTValHashSet<T>&
  101.           ssssyyyymmmmmmmmeeeettttrrrriiiiccccDDDDiiiiffffffffeeeerrrreeeennnncccceeee((((const RWTValHashSet<T>& h);
  102.  
  103.  
  104.      Computes the symmetric difference between self and hhhh, modifying self and
  105.      returning self.
  106.  
  107.               RWBoolean
  108.           iiiissssSSSSuuuubbbbsssseeeettttOOOOffff((((const RWTValHashSet<T>& h) const;
  109.  
  110.  
  111.      Returns TTTTRRRRUUUUEEEE if self is a subset of hhhh.
  112.  
  113.               RWBoolean
  114.           iiiissssPPPPrrrrooooppppeeeerrrrSSSSuuuubbbbsssseeeettttOOOOffff((((const RWTValHashSet<T>& h) const;
  115.  
  116.  
  117.      Returns TTTTRRRRUUUUEEEE if self is a proper subset of hhhh.
  118.  
  119.               RWBoolean
  120.           iiiissssEEEEqqqquuuuiiiivvvvaaaalllleeeennnntttt((((const RWTValHashSet<T>& h) const;
  121.  
  122.  
  123.      Returns TTTTRRRRUUUUEEEE if self and hhhh are identical.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++))))                                        RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++))))
  137.  
  138.  
  139.  
  140.               void
  141.           aaaappppppppllllyyyy(void (*applyFun)(T&, void*), void* d);
  142.  
  143.  
  144.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  145.  
  146.               void
  147.           cccclllleeeeaaaarrrr();
  148.  
  149.  
  150.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  151.  
  152.               RWBoolean
  153.           ccccoooonnnnttttaaaaiiiinnnnssss(const T& val) const;
  154.  
  155.  
  156.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  157.  
  158.               size_t
  159.           eeeennnnttttrrrriiiieeeessss() const;
  160.  
  161.  
  162.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  163.  
  164.               RWBoolean
  165.           ffffiiiinnnndddd(const T& target, T& k) const;
  166.  
  167.  
  168.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  169.  
  170.               void
  171.           iiiinnnnsssseeeerrrrtttt(const T& val);
  172.  
  173.  
  174.      Redefined from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>> to allow an object of a given
  175.      value to be inserted only once.
  176.  
  177.               RWBoolean
  178.           iiiissssEEEEmmmmppppttttyyyy() const;
  179.  
  180.  
  181.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  182.  
  183.               size_t
  184.           ooooccccccccuuuurrrrrrrreeeennnncccceeeessssOOOOffff(const T& val) const;
  185.  
  186.  
  187.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  188.  
  189.               RWBoolean
  190.           rrrreeeemmmmoooovvvveeee(const T& val);
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++))))                                        RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++))))
  203.  
  204.  
  205.  
  206.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  207.  
  208.               size_t
  209.           rrrreeeemmmmoooovvvveeeeAAAAllllllll(const T& val);
  210.  
  211.  
  212.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  213.  
  214.               void
  215.           rrrreeeessssiiiizzzzeeee(size_t N);
  216.  
  217.  
  218.      Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>.
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.